package cn.elead.chaos.remote.web.system.service;

import java.util.List;

import cn.elead.chaos.mybatils.web.page.TableDataInfo;
import cn.elead.chaos.remote.web.system.domain.SysMenu;
import cn.elead.chaos.remote.web.system.domain.vo.TreeSelect;
import feign.Param;
import feign.QueryMap;
import feign.RequestLine;

/**
 * 菜单权限Service接口
 * 
 * @author luopeng
 * @date 2020-02-26 12:59:33
 */

public interface IRemoteMenuService {

	/**
	 * 查询菜单权限分页列表
	 * 
	 * @param menu 菜单权限
	 * @return 菜单权限集合
	 */
	@RequestLine("GET /system/menu/page")
	public TableDataInfo<SysMenu> page(@QueryMap SysMenu menu);

	/**
     * 查询菜单权限列表
     * 
     * @param menu 菜单权限
     * @return 菜单权限集合
     */
    @RequestLine("GET /system/menu/list")
    public List<SysMenu> list(@QueryMap SysMenu menu);

    /**
     * 查询菜单权限
     * 
     * @param menuId 菜单权限ID
     * @return 菜单权限
     */
    @RequestLine("GET /system/menu/{menuId}")
    public SysMenu getInfo(@Param("menuId") Long menuId);
    
    
    /**
	 * 获取菜单下拉树列表
     * @param dept
     * @return
     */
    @RequestLine("GET /system/menu/treeselect")
    public List<TreeSelect> treeselect(@QueryMap SysMenu dept);
    
    /**
     * 加载对应角色菜单列表树
     * @param roleId
     * @return
     */
    @RequestLine("GET /system/menu/roleMenuTreeselect/{roleId}")
    public List<Integer> roleMenuTreeselect(@Param("roleId") Long roleId);


    /**
     * 新增菜单权限
     * 
     * @param menu 菜单权限
     * @return 结果
     */
    @RequestLine("POST /system/menu") 
    public int add(SysMenu menu);

    /**
     * 修改菜单权限
     * 
     * @param menu 菜单权限
     * @return 结果
     */
    @RequestLine("PUT /system/menu") 
    public int edit(SysMenu menu);
    
    /**
     * 删除菜单权限信息
     * 
     * @param menuId 菜单权限ID
     * @return 结果
     */
    @RequestLine("DELETE /system/menu/{menuId}") 
    public int remove(@Param("menuId") Long menuId);

}
